package server.persistencia;

import server.dominio.TableroJuego;
import server.persistencia.TableroJuegoDAOFS;
import server.persistencia.TableroJuegoDAOSQL;

public class FachadaPersistencia {
	private static FachadaPersistencia yo;
	private static int tipoPersistencia;
	private static String ubicacionTableroJuego;
	
	protected FachadaPersistencia(int tipoPersistencia, String ubicacionTablero) {
		FachadaPersistencia.tipoPersistencia=tipoPersistencia;
		FachadaPersistencia.ubicacionTableroJuego=ubicacionTablero;
	}
	
	public static FachadaPersistencia buildInstancia(int tipoPersistencia, String ubicacionTablero) {
		if (yo==null)
			yo=new FachadaPersistencia(tipoPersistencia, ubicacionTableroJuego);
		return yo;
	}

	public static TableroJuegoDAO getTableroJuegoDAO(TableroJuego tableroJuego) {
		if (tipoPersistencia==ORMConstants.FILE_SYSTEM)
			return new TableroJuegoDAOFS(tableroJuego, FachadaPersistencia.ubicacionTableroJuego);
		else
			return new TableroJuegoDAOSQL(tableroJuego);
	}

	public static TableroJuegoDAO getTableroJuegoDAO() {
		if (tipoPersistencia==ORMConstants.FILE_SYSTEM)
			return new TableroJuegoDAOFS(null, ubicacionTableroJuego);
		else
			return new TableroJuegoDAOSQL(null);
	}
}
